A 2 way one-to-one mirror and sync solution for Trello

This app a 2 way one-to-one mirror and sync solution for Trello. It uses uses Trello native webhooks.

It is implemented with using the FASTAPI framework to provide the api services for both the setup and actual mirror-sync operations.

This allows the card owner to collaborate with another team by creating a copy of the card and allowing the other team to use the copy whilst sending updates to the card owner and vice versa. The teams can work independently eg add and reply to comments, add new custom fields without interfering with the owner's card details.

Further customisation of the synchronisation can be made at the card level by changing the copy of the parameters.

Since it uses the admin user's API Key and Token, the operations can be across any workspace or boards that are accessible by the admin user.


The scope for the mirror and synchronization operations includes :

  • Card name and description
  • Card Due Date and Time, Start Date, due Reminder, card completion status etc
  • Labels (including custom labels)
  • Checklists (Supports advanced checklist due date and member assignment with Advanced Checklist)
  • Customfields (handles updates on shared CFs. This allows team to work independently keeping new custom fields within the team and or share the new definitions as required)
  • Locations (Support is available with a Standard Plan)
  • Attachments (also 3rd party attachments like Box, Trello card / board, images, pdf...etc)
  • Comments (this not activated for this version)

The scope is determined at the time of setup of MirrorSync for a card and it is used throughout as long as the webhook is active. It can be changed from the app configuration for any card pair at any time. By default, the scope is activated for all of the above. See Scope Customisation for more instructions.

Notes for board specific features

For custom fields and labels to work properly, the boards must have the right definitions setup. A simple way to ensure that the destination board is properly setup is to create a dummy card with all the labels and custom fields completed and move it to the destination board(s). Trello will handle the setup on the destination board. The dummy card can then be deleted.

Setup Instructions

Install app

The app can be installed from Deta Space Discovery page or from the url provided to you.


Before you can use the app, you will need to fill in the configuration parameters.

  • Right click on the (...) on the app icon
  • Click on "Settings"
  • Select "Configuration"
  • Fill in each of these parameters and "Save Changes" each time
    • Trello API Key
    • Trello Token
    • Instance hostname (this is the instance url after stripping away the https:// and the last "/")
    • Change the default settings for the scope parameters as required.
  • Refresh the browser to ensure you have each of these parameters in the right placeholders

Dummy card

  • sent a dummy card with all required labels and custom fields filled to your recipient's board so that Trello will ensure that all the labels and custom field definitions are created.
    • You need to do this once per recipient board
    • This means that you have to be a member of the recipient's board.
    • The dummy card can be deleted

Setup (simple)

  • Create a card button
    • example of a card button command

copy the card to the top of list "Inbox", and post to url "<instance url>/setup" with payload "{ "card_id" : "{triggercardidlong}" , "alt_card_id" : "{copycardidlong}"}"

Automation - simple

  • sent the copy of card to recipient's board

Setup (advanced)

This is when you have existing checklists and custom fields and you want the recipient to start with the exact status.

  • Create a card button
    • example of a card button command

post to url "<instance url>/clone" with payload "{ "card_id" : "{triggercardidlong}" }"

  • sent the clone of card to recipient's board
    • by default, the cloned card is on same list

Scope Customisation

Scope parameters

The scope parameters can be found in the Settings > Configuration. They are all default to YES. To deactivate any of the parameters change it to NO or any other value.

A copy of the scope parameters is copied and attached to the card id during the Setup.

You can find the setup under Your Data on your app. The database name is mirrorsync_lookup under the field config.

Customise scope of a card

When you changed any of the setting to anything other than YES, any updates or changes sent via the webhook will be ignored.

For example, if you are only interested in seeing updates to checklists for a particular card, you can set everything to NO while keeping MS_CHECKLISTS to YES.

However, the system will not attempt to synchronise the cards when you revert the settings to YES.